In most cases the surface, or display, is of finite size, but the movements of the pointer are usually not limited in space. This means that the movements of the user can drive the position of the object beyond the limits of the display. First, we consider the case of a conventional 2D computer mouse that the user moves across the horizontal desk surface to move the cursor on a display or screen. It is known that when the user moves too far in a certain direction, the actual cursor stops and remains at the screen border because the cursor cannot move beyond the limits of the screen. The advantage of this principle is that it is quite easy to use the objects at the edges of the screen, such as the scroll bar or the close button, since they seem to have an infinite width (in the direction beyond the screen). Therefore, the user does not have to perform a precise movement to select these objects.
In tracking methods known as “relative pointing”, a change of the position of the cursor is iteratively calculated according to the movement imparted by the user to the pointing device. When the position of the object is saturated at the borders of the display, the change of position is applied only if it does not cause the position of the object to leave the display. A problem with the behaviour of the 2D mouse at the screen border in relative pointing is that the cursor starts moving as soon as the user reverses direction. This creates an offset between the position of the cursor and the position of the mouse compared to when the user moved the pointer and the position of the cursor was about to leave the screen. A commonly used correction when using a 2D computer mouse is to have the user lift and displace the mouse to cancel this offset.
As an alternative, the position of the object may be tracked beyond the limits of the screen using absolute pointing, and the position of the object may be displayed, when the object is outside the screen, at the border of the screen. In absolute pointing, the orientation of the pointing device is converted into a position of the cursor on the screen. Using this method, each orientation of the pointing device may be converted into a position of the object on an infinite screen, and this position is saturated at the limits of the screen. This infinite screen may have different shapes and may be, for example, planar, curved, cylindrical, or spherical.
The method above allows displaying the object permanently on the screen, at a position which is intuitive for the user, when the orientation or pointing direction of the pointing device remains close to the screen. The position of the cursor is calculated as if the screen was infinite, and saturated at the border of the screen. Thus, when the orientation of the device results in the object (cursor) leaving the screen, the object will still appear at the border of the screen, at the position which is the closest to the actual position of the object in the infinite screen. When the position of the object in the infinite screen re-enters the finite screen, the virtual object starts moving within the finite screen, from the position at which the virtual object re-enters the screen.
However, this solution is not satisfactory when the user is pointing far away from the screen, for example with the orientation of the device pointing substantially away from the screen. More specifically, this solution may produce discontinuities, unintuitive, or illogic behavior in the position of the cursor if the user exits the screen on one side of the screen and returns to the screen from one of the other 3 sides. For example, if the user exits the screen to the right, the position of the object in the screen will be saturated at the right edge of the screen. If the user keeps rotating the device he or she will arrive at a position pointing 180 degrees away from the screen. During this rotation the object on the infinite screen has kept moving to the right. However, the user can also point away from the screen by rotating the device up and keep moving until the device is pointing 180 degrees from the screen. In this case, the object on the infinite screen has been moving up. Therefore, the same orientation of the device can lead to two different positions of the object on the infinite screen. The origin of this problem, and the reason for the potential illogical behavior of the object, is the fact that when the user moves the pointing device it describes a sphere, and the position of the object derived from this spherical orientation is converted into an object position on a planar (infinite) surface.
There is therefore a need for a pointing system that solves the above-mentioned problems and provides improves the prior art.